/**
 * 该模块提供定义字符的 Unicode 类别枚举。
 * License: BSD
 * Authors: Lucifer (786325481@QQ.com)
 * Copyright: Copyright (C) 2008 Lucifer. All rights reserved.
 */
module system.globalization.UnicodeCategory;

/**
 * 定义字符的 Unicode 类别。
 * Comments:
 *		这种方法可确定指定的字符是否属于特定的 Unicode 通用类别的成员。
 *		Unicode 通用类别用于定义字符的一般分类，即将字符指定为字母、十进制数字、分隔符、数学符号、标点符号等类型。
 *		
 *		此枚举基于 Unicode 标准 5.0 版。
 *
 *		Unicode 标准定义以下方面：
 *
 *		代理项对是单个抽象字符的编码字符表示形式，此序列包含两个代码单元，第一个单元是高代理项，第二个单元是低代理项。
 *		高代理项是范围 U+D800 到 U+DBFF 中的 Unicode 码位，低代理项是范围 U+DC00 到 U+DFFF 中的 Unicode 码位。
 *
 *		组合字符序列是基字符和一个或多个组合字符的组合。
 *		代理项对表示基字符或组合字符。组合字符可以是间距字符或非间距字符。
 *		在呈现时，间距组合字符自身会占据一个间距位置，而非间距组合字符则不是这样。
 *		例如，音调字符就是非间距组合字符之一。
 *
 *		修饰符字母是独立式的间距字符，它与组合字符相似，指示前面字母的修改。
 *
 *		括号是非间距组合字符，它将直到基字符（并包括基字符）的前面的所有字符括起来。
 *
 *		格式字符是通常不呈现的字符，但它影响文本布局或文本处理操作。
 *
 *		Unicode 标准定义某些标点符号的若干变体。
 *		例如，连字符可以是表示一个连字符的若干代码值之一，如 U+002D（减号连字符）、U+00AD（软连字符）、U+2010（连字符）或 U+2011（不间断连字符）。
 *		这同样适用于短划线、空白字符和引号。
 *
 *		Unicode 标准还将代码分配给十进制数字的表示形式，这些表示形式特定于给定的书写符号或语言，例如 U+0030（数字零）和 U+0660（阿拉伯-印度数字零）。		
 */
public enum UnicodeCategory
{
	UppercaseLetter         =  0,	/// 指示字符是大写字母。由 Unicode 代码“Lu”（字母，大写）表示。值为 0。
	LowercaseLetter         =  1,	/// 指示字符是小写字母。由 Unicode 代码“Ll”（字母，小写）表示。值为 1。
	TitlecaseLetter         =  2,	/// 指示字符是词首字母大写字母。由 Unicode 代码“Lt”（字母，词首字母大写）表示。值为 2。
	ModifierLetter          =  3,	/// 指示字符是修饰符字母，它是独立式的间距字符，指示前面字母的修改。由 Unicode 代码“Lm”（字母，修饰符）表示。值为 3。
	OtherLetter             =  4,	/// 指示字符是字母，但它不是大写字母、小写字母、词首字母大写或修饰符字母。由 Unicode 代码“Lo”（字母，其他）表示。值为 4。
	NonSpacingMark          =  5,	/// 指示字符是非间距字符，这指示基字符的修改。由 Unicode 代码“Mn”（符号，非间距）表示。值为 5。
	SpacingCombiningMark    =  6,	/// 指示字符是间距字符，这指示基字符的修改并影响该基字符的标志符号的宽度。由 Unicode 代码“Mc”（符号，间距组合）表示。值为 6。
	EnclosingMark           =  7,	/// 指示字符是封闭符号，封闭符号是非间距组合字符，它环绕直到基字符（并包括基字符）的所有前面的字符。由 Unicode 代码“Me”（符号，封闭）表示。值为 7。
	DecimalDigitNumber      =  8,	/// 指示字符是十进制数字，即在范围 0 到 9 内。由 Unicode 代码“Nd”（数字，十进制数字）表示。值为 8。
	LetterNumber            =  9,	/// 指示字符是由字母表示的数字，而不是十进制数字，例如，罗马数字 5 由字母“V”表示。此指示符由 Unicode 代码“Nl”（数字，字母）表示。值为 9。
	OtherNumber             = 10,	/// 指示字符是数字，但它既不是十进制数字也不是字母数字，例如分数 1/2。此指示符由 Unicode 代码“No”（数字，其他）表示。值为 10。
	SpaceSeparator          = 11,	/// 指示字符是空白字符，它不具有标志符号，但不是控制或格式字符。由 Unicode 代码“Zs”（分隔符，空白）表示。值为 11。
	LineSeparator           = 12,	/// 指示字符用于分隔文本各行。由 Unicode 代码“Zl”（分隔符，行）表示。值为 12。
	ParagraphSeparator      = 13,	/// 指示字符用于分隔段落。由 Unicode 代码“Zp”（分隔符，段落）表示。值为 13。
	Control                 = 14,	/// 指示字符是控制代码，其 Unicode 值是 U+007F，或者位于 U+0000 到 U+001F 或 U+0080 到 U+009F 范围内。由 Unicode 代码“Cc”（其他，控制）表示。值为 14。
	Format                  = 15,	/// 指示字符是格式字符，格式字符是通常不呈现的字符，但它影响文本布局或文本处理操作。由 Unicode 代码“Cf”（其他，格式）表示。值为 15。
	Surrogate               = 16,	/// 指示字符是高代理项还是低代理项。代理项代码值在范围 U+D800 到 U+DFFF 内。由 Unicode 代码“Cs”（其他，代理项）表示。值为 16。
	PrivateUse              = 17,	/// 指示字符是专用字符，其 Unicode 值在范围 U+E000 到 U+F8FF 内。由 Unicode 代码“Co”（其他，专用）表示。值为 17。
	ConnectorPunctuation    = 18,	/// 指示字符是连接两个字符的连接符标点。由 Unicode 代码“Pc”（标点，连接符）表示。值为 18。
	DashPunctuation         = 19,	/// 指示字符是短划线或连字符。由 Unicode 代码“Pd”（标点，短划线）表示。值为 19。
	OpenPunctuation         = 20,	/// 指示字符是成对的标点符号（例如括号、方括号和大括号）之一的开始字符。由 Unicode 代码“Ps”（标点，开始）表示。值为 20。
	ClosePunctuation        = 21,	/// 指示字符是成对的标点符号（例如括号、方括号和大括号）之一的封闭字符。由 Unicode 代码“Pe”（标点，结束）表示。值为 21。
	InitialQuotePunctuation = 22,	/// 指示字符是开始或前引号。由 Unicode 代码“Pi”（标点，前引号）表示。值为 22。
	FinalQuotePunctuation   = 23,	/// 指示字符是封闭或后引号。由 Unicode 代码“Pf”（标点，后引号）表示。值为 23。
	OtherPunctuation        = 24,	/// 指示字符是标点，但它不是连接符标点、短划线标点、开始标点、结束标点、前引号标点或后引号标点。由 Unicode 代码“Po”（标点，其他）表示。值为 24。
	MathSymbol              = 25,	/// 指示字符是数学符号，例如“+”或“=”。由 Unicode 代码“Sm”（符号，数学）表示。值为 25。
	CurrencySymbol          = 26,	/// 指示字符是货币符号。由 Unicode 代码“Sc”（符号，货币）表示。值为 26。
	ModifierSymbol          = 27,	/// 指示字符是修饰符符号，这指示环绕字符的修改。例如，分数斜线号指示其左侧的数字为分子，右侧的数字为分母。此指示符由 Unicode 代码“Sk”（符号，修饰符）表示。值为 27。
	OtherSymbol             = 28,	/// 指示字符是符号，但它不是数学符号、货币符号或修饰符符号。由 Unicode 代码“So”（符号，其他）表示。值为 28。
	OtherNotAssigned        = 29	/// 指示字符未被分配给任何 Unicode 类别。由 Unicode 代码“Cn”（其他，未分配）表示。值为 29。
}